package com.wsm.util.httpclient.autoconfig;

import com.wsm.util.httpclient.config.HttpClientConfig;
import com.wsm.util.httpclient.register.HttpClientBeanDefinitionRegistrar;
import org.springframework.context.annotation.Import;
import org.springframework.core.type.filter.AbstractClassTestingTypeFilter;

import java.lang.annotation.*;

/**
 * @author ：wangshimin
 * @date ：Created in 2021-02-27 下午 12:06
 * @description：
 * @version:
 */
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(value = {HttpClientConfig.class, HttpClientBeanDefinitionRegistrar.class})
public @interface EnableHttpClient {
    /**
     * @return
     */
    String[] value() default {};

    /**
     * 扫描包
     *
     * @return
     */
    String[] basePackages() default {};

    /**
     * 扫描的基类
     *
     * @return
     */
    Class<?>[] basePackageClasses() default {};


    /**
     * 包含过滤器
     *
     * @return
     */
    Class<? extends AbstractClassTestingTypeFilter>[] includeFilters() default {};

    /**
     * 排斥过滤器
     *
     * @return
     */
    Class<? extends AbstractClassTestingTypeFilter>[] excludeFilters() default {};
}
